The present invention relates to testing a static random access memory (SRAM) unit. More particularly, the present invention relates to memory testing of an SRAM unit having a write control module with write enable control and a read control module with no read enable control.
Memory test algorithms are used to provide highly efficient testing for static random access memory (SRAM) units. An illustrative example of a variety of memory test algorithms include the 2N, 6N or 12N march test algorithms which are used to test SRAM components. These march test algorithms include testing internal RAM data integrity at the CPU manufacturing and debug stage and for field testing and diagnostic testing.
By way of example and not of limitation, the 6N march test algorithm uses a specific data background and the complement of the specific data background in a read/write manner. The 6N march test consists of six(6) read/write cycles which are accomplished in three passes. Those with ordinary skill in the art shall appreciate that the six read/write operations are identified as:↑Wo, ↑(RoW1),↓(R1WoRo)
The first march element (↑Wo) writes a particular data background of ones and zeros into the SRAM. The first march element writes addresses from lower to higher memory addresses. The write operation of the first march element is identified as Wo. The upward arrow, ↑, is used to designate performing either read or write operations from lower to higher memory addresses.
The second march element, ↑(RoW1), performs its read and write operations by reading and writing from the lower memory addresses to the higher memory addresses. During the first operation of the second march element, the data background from the first march test is read. This first operation of the second march element is identified as Ro. During the second operation of the second march element, the complement of the data background is written to the SRAM addresses. The second operation of the second march element is identified as W1. The complement of the data background is tested to verify that the SRAM cells containing a “one” can store a “zero” and vice versa.
The third march element, ↑(R1WoRo), performs its read and write operation by reading and writing from the higher memory addresses to the lower memory addresses. The downward arrow, ↓, is used to represent performing read and write operations from higher to lower memory addresses. During the first operation of the third march element, the data background from the write complement, W1, completed in the previous march element is read. This first operation of the third march element is identified as R1. During the second operation of the third march element, the original data background is written back to the same memory locations. This second operation of the third march element is identified as W0. During the third operation of the third march element, the original data background is read from the same memory locations to verify the contents of each location. This third operation is identified as R0.
Referring to FIG. 1, there is shown a block diagram of a prior art testing system 10 having one input data register 12 which is scannable and used for storing data to be written into SRAM 14. The prior art teaches the use of a single input register 12 in conjunction with the memory test algorithm for conducting SRAM diagnostic testing. The initial data background from the single input register is written into each data line of the SRAM 14. The input data register 12 may be comprised of a plurality of flip-flops and/or macros. A macro comprises a plurality of flip-flops. After the initial data background is written into the data line, the ↑Wo operation is completed. The complement of the ↑Wo operation, i.e. ↑W1, is generated by inverting the initial data background (not shown) and scanning in the inverted data background to the single input register. Additionally, it is well known that two input data registers may also be used to write into the datalines of a SRAM.
Complex integrated circuits are tested by generating a comparison between known output patterns and a device under test pattern. The output pattern is generated with input stimuli, and those same input stimuli are presented on the device under test. Comparisons are made cycle by cycle with an option to ignore certain pins, time or patterns. If the device response and the output response are not in agreement, the device is usually considered defective.
Those of ordinary skill in the art shall appreciate that memory testing with a memory test algorithm typically uses a built-in self-test (BIST) logic. BIST logic is built into a circuit to perform testing without the use of an external tester for pattern generation and comparison purposes. The BIST logic provides the ability to categorize failures and separate good from bad units. Additionally, BIST logic supplies clocks to the device and determines the pass/fail from the outputs of the device.
The BIST capability can be implemented on virtually any size CPU block. With BIST a single bit defect can easily be detected using self-testing techniques. Single-point defects in the CPU block from the manufacturing process can show up as a single transistor failure in a RAM or they may be somewhat more complex. If a single-point defect happens to be in the decoder section or in a row or column within the RAM, the device may be non-functional.